<!DOCTYPE html>
<html lang="en">

<!-- Head tag -->
<head><meta name="generator" content="Hexo 3.9.0">

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!--Description-->
    

    <!--Author-->
    
        <meta name="author" content="ck">
    

    <!--Open Graph Title-->
    
        <meta property="og:title" content="CK&#39;s blogs">
    

    <!--Open Graph Description-->
    

    <!--Open Graph Site Name-->
    <meta property="og:site_name" content="CK&#39;s blogs">

    <!--Type page-->
    
        <meta property="og:type" content="website">
    

    <!--Page Cover-->
    

    <meta name="twitter:card" content="summary">
    

    <!-- Title -->
    
    <title>page - CK&#39;s blogs</title>

    <!-- Bootstrap Core CSS -->
    <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.2/css/bootstrap.min.css" integrity="sha384-y3tfxAZXuh4HwSYylfB+J125MxIs6mR5FOHamPBG064zB+AFeWH94NdvaCBm8qnd" crossorigin="anonymous">

    <!-- Custom Fonts -->
    <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" type="text/css">

    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
        <script src="//oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
        <script src="//oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->

    <!-- Gallery -->
    <link href="//cdnjs.cloudflare.com/ajax/libs/featherlight/1.3.5/featherlight.min.css" type="text/css" rel="stylesheet">

    <!-- Custom CSS -->
    <link rel="stylesheet" href="/blog/css/style.css">

    <!-- Google Analytics -->
    


</head>


<body>

<div class="bg-gradient"></div>
<div class="bg-pattern"></div>

<!-- Menu -->
<!--Menu Links and Overlay-->
<div class="menu-bg">
    <div class="menu-container">
        <ul>
            
            <li class="menu-item">
                <a href="/blog/">
                    Home
                </a>
            </li>
            
            <li class="menu-item">
                <a href="/blog/archives">
                    Archives
                </a>
            </li>
            
            <li class="menu-item">
                <a href="/blog/2019/09/04/本人简历/">
                    About
                </a>
            </li>
            
            <li class="menu-item">
                <a href="/blog/tags">
                    Tags
                </a>
            </li>
            
            <li class="menu-item">
                <a href="/blog/categories">
                    Categories
                </a>
            </li>
            
            <li class="menu-item">
                <a href="/blog/contact.html">
                    Contact
                </a>
            </li>
            
        </ul>
    </div>
</div>

<!--Hamburger Icon-->
<nav>
    <a href="#menu"></a>
</nav>

<div class="container">

    <!-- Main Content -->
    <div class="row">
    <div class="col-sm-12">

        <!--Title and Logo-->
        <header>
    <div class="logo">
        <a href="/blog/"><i class="logo-icon fa fa-cube" aria-hidden="true"></i></a>
        
            <h1 id="main-title" class="title">CK's blogs</h1>
        
    </div>
</header>

        <section class="main">
            
                
<div class="post">

    <div class="post-header index">
        <h1 class="title">
            <a href="/blog/2018/10/11/Linux-命令手记/">
                Linux-命令手记
            </a>
        </h1>
        <div class="post-info">
            
                <span class="date">2018-10-11</span>
            
            
            
        </div>
    </div>

    
        <div class="content">
            <p>·········Linux··········介绍</p>
<p>linux  黑窗口模式 ctrl + alt + f4<br>重回界面模式  ctrl + alt + f1</p>
<p>用户主目录  home  波浪 ~<br>根目录  /   上一层 ..<br>存放临时文件  tmp<br>存放配置文件 etc<br>存放用户安装程序 usr<br>文件系临时挂载点 mnt  （硬盘）<br>附加的应用程序包 opt<br>软连接 -&gt; ln</p>
<p>··················命令<br>创建文件 也可以用touch 后面可以加图片</p>
<p>创建文件夹 mkdir 文件夹名称（在当前目录下）<br>如果要创建子文件夹  mkdir -p xx/xx<br>删除文件夹 rmdir 文件夹名称 （文件夹里面必须为空）<br>查看所有内容及详细信息 ll  ll后面加指定文件夹 可以只查看一个<br>打开一个文件并编辑 没有创建 vi c.txt   编辑完并退出 esc shift +zz  查看 cat c.txt 也可以用vim<br>删除命令 rm 文件<br>强制删除rm -fr 文件名<br>删除文件夹 rm -r 文件夹名<br>建立链接文件 ln<br>查找文件 find<br>查看文件类型或文件属性信息 file/stat<br>查看 文件内容 cat<br>可以分页看  more<br>不仅可以分页 还可以方便搜索 回翻等操作 less<br>查看文件的尾部10行 tail-10<br>查看文件的头部20行 head-20<br>把内容重定向到指定的文件中 有则打开 没有则创建 echo<br>echo 追加文件 然后是隐藏的 用 ll -a 查看<br>查看历史命令 history   !加之前的命令 前面的数字 可以调用之前的命令<br>wget 后面跟网址 可以下载这网址的首页<br>wget -c 加网址 如果网不好自动检测暂停 下次继续下<br>移动文件或目录 mv  也可以改名字 mv 旧文件 新文件<br>curl -o 文件名 网址  相当于mv 加 wget<br>yyp 复制 yy10p 复制十行 前面加esc<br>dd 删除 10dd 删除十行<br>lsof -i: 3306  查看端口</p>
<p>··············用户管理<br>useradd xxx 添加一个用户<br>su xxx 切换到其他用户<br>password xx 用户名设置密码</p>
<p>删除用户<br>userdel xx -f强制删除</p>
<p>················权限<br>chmod 改变权限<br>r 数字4 w数字 2 x数字1<br>chmod 777 所有权限 第一个7显示用户权限 第二个显示组内其他用户权限<br>第三个显示其他用户权限<br>chmod o-rw 删除其他用户的读写权限<br>chmod u-r 删除用户读权限<br>chmod g-r 删除组内其他用户读权限</p>
<p>GRANT ALL PRIVILEGES ON <em>.</em> TO ‘root’@’%’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;  开放权限</p>
<p>flush privileges;  清理缓存</p>
<p>············防火墙<br>永久有效<br>chkconfig iptables on  开启<br>chkconfig iptables off 关闭<br>systemctl disable firewalld  永久关闭</p>
<p>systemctl status firewalld  查询防火墙状态</p>
<p>即刻生效<br>systemctl start firewalld  开启<br>systemctl stop firewalld    关闭</p>
<p>开启部分端口<br>vim /etc/sysconfig/iptables  添加需要开启的端口</p>
<p>··············修改yum源为阿里<br>方法一：<br>下载wget  —已安装不用管<br>yum install wget -y<br>echo 备份当前的yum源<br>mv /etc/yum.repos.d /etc/yum.repos.d.backup4comex<br>echo 新建空的yum源设置目录<br>mkdir /etc/yum.repos.d<br>echo 下载阿里云的yum源配置<br>wget -O /etc/yum.repos.d/CentOS-Base.repo <a href="http://mirrors.aliyun.com/repo/Centos-7.repo" target="_blank" rel="noopener">http://mirrors.aliyun.com/repo/Centos-7.repo</a></p>
<p>然后重建缓存：<br>yum clean all<br>yum makecache</p>
<p>查看并更新<br>yum -y update</p>
<p>查看日志<br>tail -f /var/log/nginx/error.log</p>

        </div>
    

</div>
            
                
<div class="post">

    <div class="post-header index">
        <h1 class="title">
            <a href="/blog/2018/10/01/Linux-环境变量部署/">
                Linux-环境变量部署
            </a>
        </h1>
        <div class="post-info">
            
                <span class="date">2018-10-01</span>
            
            
            
        </div>
    </div>

    
        <div class="content">
            <p><a href="https://www.cnblogs.com/Joans/p/7760378.html" target="_blank" rel="noopener">Linux下环境变量设置</a></p>
<p>1、在Windows 系统下，很多软件安装都需要配置环境变量，比如 安装 jdk ，如果不配置环境变量，在非软件安装的目录下运行javac 命令，将会报告找不到文件，类似的错误。</p>
<p>2、那么什么是环境变量？简单说，就是指定一个目录，运行软件的时候，相关的程序将会按照该目录寻找相关文件。 设置变量对于一般人最实用的功能就是： 不用拷贝某些dll文件到系统目录中了，而path 这一系统变量就是系统搜索dll文件的一系列路径</p>
<p>在Linux系统下，如果你下载并安装应用程序，很有可能在键入它的名称的时候出现 “command  not found ” 的提示内容。 如果每次都到安装目录文件夹内，找到可执行文件来进行操作就太繁琐了。 这涉及到环境变量path的设置问题，而Path 的设置也是在Linux下定制环境变量的一个组成部分</p>
<p><strong>Linux下环境变量设置的三种方法</strong>：</p>
<p>如想将一个路径加入到$PATH中，可以像下面这样做：</p>
<p><strong>只对当前的shell 起作用的环境变量</strong></p>
<p><strong>1、</strong>控制台中设置，不赞成这种方式，因为他只对当前的shell 起作用，换一个shell设置就无效了：</p>
<p>直接控制台中输入 ： $PATH=”$PATH”:/NEW_PATH  (关闭shell Path会还原为原来的path)</p>
<p><strong>对所有的用户的都起作用的环境变量</strong></p>
<p><strong>2、</strong>修改 /etc/profile 文件，如果你的计算机仅仅作为开发使用时推存使用这种方法，因为所有用户的shell都有权使用这个环境变量，可能会给系统带来安全性问题。这里是针对所有的用户的，所有的shell</p>
<p>vi /etc/profile</p>
<p>在/etc/profile的最下面添加：  export  PATH=”$PATH:/NEW_PATH”</p>
<p><strong>针对当前特定的用户起作用的环境变量</strong></p>
<p><strong>3、</strong>修改bashrc文件，这种方法更为安全，它可以把使用这些环境变量的权限控制到用户级别，这里是针对某一特定的用户，如果你需要给某个用户权限使用这些环境变量，你只需要修改其个人用户主目录下的 .bashrc文件就可以了。</p>
<p>vi ~/.bashrc</p>
<p>在下面添加：</p>
<p>Export  PATH=”$PATH:/NEW_PATH”</p>
<p>Ubuntu Linux系统环境变量配置文件：<br>/etc/profile : 在登录时,操作系统定制用户环境时使用的第一个文件 ,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。<br>/etc /environment : 在登录时操作系统使用的第二个文件, 系统在读取你自己的profile前,设置环境文件的环境变量。<br>~/.profile :  在登录时用到的第三个文件 是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。<br>/etc/bashrc : 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.<br>~/.bashrc : 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。<br><strong>PASH环境变量的设置方法：</strong><br>方法一：用户主目录下的.profile或.bashrc文件（推荐）<br>登录到你的用户（非root），在终端输入：<br>$ sudo gedit ~/.profile(or .bashrc)<br>可以在此文件末尾加入PATH的设置如下：<br>export PATH=”$PATH:your path1:your path2 …”<br>保存文件，注销再登录，变量生效。<br>该方式添加的变量只对当前用户有效。<br>方法二：系统目录下的profile文件（谨慎）<br>在系统的etc目录下，有一个profile文件，编辑该文件：<br>$ sudo gedit /etc/profile<br>在最后加入PATH的设置如下：<br>export PATH=”$PATH:your path1:your path2 …”<br>该文件编辑保存后，重启系统，变量生效。<br>该方式添加的变量对所有的用户都有效。<br>方法三：系统目录下的 environment 文件（谨慎）<br>在系统的etc目录下，有一个environment文件，编辑该文件：<br>$ sudo gedit /etc/environment<br>找到以下的 PATH 变量：<br>PATH=”&lt;……&gt;”<br>修改该 PATH 变量，在其中加入自己的path即可，例如：<br>PATH=”&lt;……&gt;:your path1:your path2 …”<br>各个path之间用冒号分割。该文件也是重启生效，影响所有用户。<br>注意这里不是添加export PATH=… 。<br>方法四：直接在终端下输入<br>$ sudo export PATH=”$PATH:your path1:your path2 …”<br>这种方式变量立即生效，但用户注销或系统重启后设置变成无效，适合临时变量的设置。<br>注 意：方法二和三的修改需要谨慎，尤其是通过root用户修改，如果修改错误，将可能导致一些严重的系统错误。因此笔者推荐使用第一种方法。另外嵌入式 Linux的开发最好不要在root下进行（除非你对Linux已经非常熟悉了！！），以免因为操作不当导致系统严重错误。<br>下面是一个对environment文件错误修改导致的问题以及解决方法示例：<br>问题：因为不小心在 etc/environment里设在环境变量导致无法登录<br>提示：不要在 etc/environment里设置 export PATH这样会导致重启后登录不了系统<br>解决方法：<br>在登录界面 alt +ctrl+f1进入命令模式，如果不是root用户需要键入（root用户就不许这么罗嗦，gedit编辑会不可显示）<br>/usr/bin/sudo /usr/bin/vi /etc/environment<br>光标移到export PATH** 行，连续按 d两次删除该行；<br>输入:wq保存退出；<br>然后键入/sbin/reboot重启系统（可能会提示need to boot，此时直接power off）</p>

        </div>
    

</div>
            
                
<div class="post">

    <div class="post-header index">
        <h1 class="title">
            <a href="/blog/2018/09/12/git上传项目/">
                git上传项目
            </a>
        </h1>
        <div class="post-info">
            
                <span class="date">2018-09-12</span>
            
            
            
        </div>
    </div>

    
        <div class="content">
            <h1 id="GIT"><a href="#GIT" class="headerlink" title="GIT"></a>GIT</h1><p>到码云上创建仓库  (建议设置共有)</p>
<p>在计算机上</p>
<ol>
<li><p>新建文件夹</p>
</li>
<li><p>到该文件夹目录</p>
</li>
<li><p>初始化  </p>
<p>$ git init </p>
<p>$ git remote add origin <a href="https://gitee.com/xxx/xxx.git" target="_blank" rel="noopener">https://gitee.com/xxx/xxx.git</a> (你的远程仓库地址)</p>
<p>Ps： 没提示需要 下面两条不用执行</p>
<p>$ git config –global user.name “你的名字”</p>
<p>$ git config –global user.email “你的邮箱”</p>
</li>
</ol>
<p>2.克隆一下 在原有基础上修改你的仓库内容</p>
<p>$ git clone https://****.git (你的远程仓库地址)  </p>
<ol>
<li>拉取仓库主分支 Ps: 主分支在哪，最后提交主分支也是提交到相应目录  </li>
</ol>
<p>$ git pull origin master</p>
<p>4.添加到暂存区</p>
<p>$ git add .</p>
<p>5.添加到仓库区</p>
<p>$ git commit -m “你的第一次提交”</p>
<p>6.push到你的码云仓库</p>
<p>$ git push origin master</p>
<h2 id="完成了提交-亲测有效"><a href="#完成了提交-亲测有效" class="headerlink" title="完成了提交  亲测有效"></a>完成了提交  亲测有效</h2>
        </div>
    

</div>
            
                
<div class="post">

    <div class="post-header index">
        <h1 class="title">
            <a href="/blog/2018/09/09/序列化和反序列化/">
                序列化和反序列化
            </a>
        </h1>
        <div class="post-info">
            
                <span class="date">2018-09-09</span>
            
            
            
        </div>
    </div>

    
        <div class="content">
            <h2 id="序列化和反序列化的定义"><a href="#序列化和反序列化的定义" class="headerlink" title="序列化和反序列化的定义"></a>序列化和反序列化的定义</h2><p>序列化:就是把不可传输的对象转换为可存储或可传输的过程<br>反序列化:就是把在磁盘,等介质中的数据转换为对象<br>python中序列化通常有两种方式:pickle模块和json模块</p>
<h2 id="pickle模块的使用"><a href="#pickle模块的使用" class="headerlink" title="pickle模块的使用"></a>pickle模块的使用</h2><p>对于大多数应用程序来讲，dump()和load()函数的使用就是你使用pickle<br>模块所需的全部了。<br>dumps(object)和dump(object) :序列化<br>loads(bytes)和load(bytes):反序列化<br>两者不同的是不带s的是(反)序列化关于二进制文件中,带s是(反)关于序列化对象</p>
<p>import pickle<br>dict1 = {“a”: 1, “b”: 2, “c”: 3}<br>b = pickle.dumps(dict1)<br>print(b,type(b)) # 1<br>c = pickle.loads(b)<br>print(c,type(c)) # 2</p>
<h3 id="输出结果"><a href="#输出结果" class="headerlink" title="输出结果:"></a>输出结果:</h3><p>1:b’\x80\x03}q\x00(X\x01\x00\x00\x00aq\x01K\x01X\x01\x00\x00\x00bq\x02K\x02X\x01\x00\x00\x00cq\x03K\x03u.’ &lt;class ‘bytes’&gt;<br>2:{‘a’: 1, ‘b’: 2, ‘c’: 3} &lt;class ‘dict’&gt;</p>
<h2 id="pickle-dump和pickle-load的使用-序列和反序列化到文件中的"><a href="#pickle-dump和pickle-load的使用-序列和反序列化到文件中的" class="headerlink" title="pickle.dump和pickle.load的使用:序列和反序列化到文件中的"></a>pickle.dump和pickle.load的使用:序列和反序列化到文件中的</h2><p>import pickle<br>dict1 = {“a”: 1, “b”: 2, “c”: 3}<br>sfile = open(“dump.txt”, “wb”)<br>pickle.dump(dict1, sfile)#<br>sfile.close()<br>dfile = open(“dump.txt”, “rb”)<br>result = pickle.load(dfile)<br>dfile.close()<br>print(id(dict1), result, id(result)) # 1</p>
<h3 id="输出结果-1"><a href="#输出结果-1" class="headerlink" title="输出结果:"></a>输出结果:</h3><p>1:1433748979648 {‘a’: 1, ‘b’: 2, ‘c’: 3} 1433751817024<br>结果说明反序列化后的对象不是原来的对象了</p>
<p>json模块的使用<br>方法不带s的是file文件中使用的<br>json.dumps 从字典(可序列化json的对象)转换为json格式数据<br>json.loads 从json到字典<br>json.dump<br>json.load<br>default:就是把任意一个对象变成一个可序列为JSON的对象<br>intent:格式化好看点</p>
<p>import json<br>dict1 = {“a”: 1, “b”: 2, “c”: 3}<br>a = json.dumps(dict1, indent=4)<br>print(a, type(a)) # 1<br>sa = json.loads(a)<br>print(sa, type(sa)) # 2</p>
<h3 id="输出结果-2"><a href="#输出结果-2" class="headerlink" title="输出结果:"></a>输出结果:</h3><p>1:{<br>    “a”: 1,<br>    “b”: 2,<br>    “c”: 3<br>} &lt;class ‘str’&gt;<br>2:{‘a’: 1, ‘b’: 2, ‘c’: 3} &lt;class ‘dict’&gt;</p>
<p>现在我们想序列化一个类,如下使用相同的json.dumps(ball)序列化下面ball的对象会出现以下错误</p>
<p>TypeError: Object of type ‘Ball’ is not JSON serializable<br>1<br>正确的处理方法要把对象转换为可序列化json的对象,所以要使用关键字参数default和定义一个转换函数去处理</p>
<p>class Ball:<br>    def <strong>init</strong>(self, color):<br>        self.color = color</p>
<p>ball = Ball(“red”)<br>def ball2idict(bal):<br>    return {<br>        “color”: bal.color<br>    }</p>
<p>def dict2ball(odict):<br>    return Ball(odict[“color”])</p>
<p>objdumps = json.dumps(ball, default=ball2idict)<br>objloads = json.loads(objdumps, object_hook=dict2ball)<br>print(objdumps)# 1<br>print(objloads)# 2</p>
<h3 id="输出结果-3"><a href="#输出结果-3" class="headerlink" title="输出结果:"></a>输出结果:</h3><p>1 {“color”: “red”}<br>2 &lt;<strong>main</strong>.Ball object at 0x0000025DCDDD2630&gt;</p>

        </div>
    

</div>
            
                
<div class="post">

    <div class="post-header index">
        <h1 class="title">
            <a href="/blog/2018/09/07/Git-常见用法/">
                Git---常见用法
            </a>
        </h1>
        <div class="post-info">
            
                <span class="date">2018-09-07</span>
            
            
            
        </div>
    </div>

    
        <div class="content">
            <h1 id="Git-与-GitHub"><a href="#Git-与-GitHub" class="headerlink" title="Git 与 GitHub"></a>Git 与 GitHub</h1><ul>
<li>分布式版本控制系统</li>
<li>2008 年发布网站版GitHub</li>
<li>版本控制 ，git可以解决找回历史代码的问题</li>
<li>集中式<ul>
<li>工作电脑的代码完整保存在中央服务器，服务器一旦挂掉，代码无法找回</li>
</ul>
</li>
<li>分布式<ul>
<li>工作电脑代码页完整保存在中央服务器，但分布在不同的机器上，服务器一旦挂掉，可以继续正常工作</li>
</ul>
</li>
</ul>
<h2 id="安装命令："><a href="#安装命令：" class="headerlink" title="安装命令："></a>安装命令：</h2><ul>
<li><code>sudo apt-get install git</code><ul>
<li>验证安装成功<ul>
<li>输入命令 git </li>
<li>没报错提示各种命令  就OK了</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 id="使用："><a href="#使用：" class="headerlink" title="使用："></a>使用：</h2><h3 id="建立要管理的目录，并初始化"><a href="#建立要管理的目录，并初始化" class="headerlink" title="建立要管理的目录，并初始化"></a>建立要管理的目录，并初始化</h3><ul>
<li><code>mkdir 文件夹名</code>      # git_test 是文件夹名</li>
<li><code>cd 路径</code>    # 进入目录页</li>
<li><code>git init</code></li>
<li>添加文件夹到目录下<ul>
<li><code>git add 文件夹名</code></li>
<li><code>git commit -m &#39;版本名&#39;</code>     # 版本名只是个说明 如果重名 版本标号会做出差异</li>
<li>版本编号来自 log日志 commit 后面的值</li>
</ul>
</li>
</ul>
<h3 id="查看git版本日志信息"><a href="#查看git版本日志信息" class="headerlink" title="查看git版本日志信息"></a>查看<code>git</code>版本日志信息</h3><ul>
<li>详解日志信息<ul>
<li><code>git log</code></li>
</ul>
</li>
<li>简洁日志+分支路线<ul>
<li><code>git log --pretty=oneline --graph</code></li>
</ul>
</li>
<li>简介日志信息<ul>
<li><code>git log --pretty=oneline</code></li>
</ul>
</li>
</ul>
<h3 id="版本回退"><a href="#版本回退" class="headerlink" title="版本回退"></a>版本回退</h3><ul>
<li>回到HEAD 版本<ul>
<li><code>git reset --hard HEAD</code>    # 回退到当前版本</li>
<li><code>git reset --hard HEAD^</code>    # 回退到当前版本前一个版本 每多一个^多回退一个版本</li>
<li>版本过多  <code>git reset --hard HEAD~数值</code></li>
</ul>
</li>
<li>指定版本 回退<ul>
<li><code>git reset --hard 版本编号</code>     </li>
</ul>
</li>
</ul>
<h3 id="工作区和暂存区介绍"><a href="#工作区和暂存区介绍" class="headerlink" title="工作区和暂存区介绍"></a>工作区和暂存区介绍</h3><ul>
<li>get_test 文件夹就是工作区</li>
<li>.git 这个隐藏文件夹就是版本库<ul>
<li>其中重要的是称为stage(或叫index)的暂存区</li>
<li>还有自动创建的一个分支master<ul>
<li>所以.git 就是往master分支上提交修改</li>
</ul>
</li>
<li>以及master的一个指针叫HEAD</li>
</ul>
</li>
<li>Ps: 你可以理解为：需要提交的文件修改通通放到暂存区，然后一次性提交暂存区的所有修改</li>
<li>Ps： git 管理文件的修改，他只会提交暂存区的修改来创建新版本</li>
</ul>
<h3 id="工作区状态"><a href="#工作区状态" class="headerlink" title="工作区状态"></a>工作区状态</h3><ul>
<li><code>git status</code></li>
</ul>
<h3 id="撤销修改"><a href="#撤销修改" class="headerlink" title="撤销修改"></a>撤销修改</h3><ul>
<li>改乱了 工作区<ul>
<li><code>git checkout -- file</code>   # file :文件名加格式</li>
</ul>
</li>
<li>改乱了 工作区，并提交到暂存区，想丢弃修改<ul>
<li>先执行  <code>git reset HEAD file</code>     # file :文件名加格式</li>
<li>再执行 <code>git checkout -- file</code>      # file :文件名加格式</li>
</ul>
</li>
<li>已经提交了版本<ul>
<li>回退一节，返回上一版本</li>
</ul>
</li>
</ul>
<p>Ps：git add之前 添加到工作区 ， 之后 添加到暂存区， git commit -m 之后仓库区</p>
<h3 id="文件对比"><a href="#文件对比" class="headerlink" title="文件对比"></a>文件对比</h3><ul>
<li><code>git diff HEAD -- file</code>   # file :要对比的文件名加格式  HEAD: 用法相同当前版本</li>
</ul>
<h3 id="删除文件"><a href="#删除文件" class="headerlink" title="删除文件"></a>删除文件</h3><ul>
<li><code>rm file</code>        # file :文件名加格式<ul>
<li>相当于对工作区作出了修改，可以通过撤销修改的方式找回<ul>
<li>注意：删除一个文件，如果一个文件已经被提交到版本库，那么你永远不用担心误删，但只能恢复最新版本，会丢失最近一次提交后的修改内容（只有经过git操作的才能找回）</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 id="Git-分支"><a href="#Git-分支" class="headerlink" title="Git 分支"></a>Git 分支</h2><h3 id="创建分支与合并分支"><a href="#创建分支与合并分支" class="headerlink" title="创建分支与合并分支"></a>创建分支与合并分支</h3><ul>
<li>概念：<ul>
<li>git 把每次提交的版本串成一条时间线，这条时间线就是一个分支，截止到目前只有一条时间线，在 git 里称为 主分支，也就是master(主机)分支，HEAD严格来说不是指向提交，而是指向master，master才是指向提交的，所以 HEAD 指向就是当前分支</li>
<li>创建分支是就是git新建了一个指针叫dev，指向master相同的提交，再把HEAD指向dev，就是表示当前分支在dev上，创建分支很快，因为除了增加dev指针，改动HEAD指向，工作区都没做任何变化，当工作完成后，把dev合并到master上，git直接把master指向dev的当前提交，就完成了合并</li>
</ul>
</li>
</ul>
<h3 id="查看分支"><a href="#查看分支" class="headerlink" title="查看分支"></a>查看分支</h3><ul>
<li><code>git branch</code><ul>
<li>表示当前在哪个分支</li>
</ul>
</li>
</ul>
<h3 id="创建分支dev并切换其分支工作"><a href="#创建分支dev并切换其分支工作" class="headerlink" title="创建分支dev并切换其分支工作"></a>创建分支dev并切换其分支工作</h3><ul>
<li>创建分支<ul>
<li><code>git checkout dev</code>        # dev 表示新建分支名(变量，别称)</li>
</ul>
</li>
<li>创建并切换<ul>
<li><code>git checkout -b dev</code>    # dev 表示新建分支名(变量，别称)<ul>
<li>HEAD 指向了 dev   master 还是指向主分支</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3 id="切换分支"><a href="#切换分支" class="headerlink" title="切换分支"></a>切换分支</h3><ul>
<li><code>git checkout master</code></li>
</ul>
<h3 id="合并分支"><a href="#合并分支" class="headerlink" title="合并分支"></a>合并分支</h3><ul>
<li>快速合并<ul>
<li><code>git merge dev</code>        # dev 表示新建分支名(变量，别称)</li>
</ul>
</li>
</ul>
<h3 id="删除分支"><a href="#删除分支" class="headerlink" title="删除分支"></a>删除分支</h3><ul>
<li><code>git branch -d dev</code>    # dev 表示新建分支名(变量，别称)</li>
</ul>
<h3 id="合并失败，解决冲突"><a href="#合并失败，解决冲突" class="headerlink" title="合并失败，解决冲突"></a>合并失败，解决冲突</h3><ul>
<li><p>冲突原因 : 可能建立分之后，回到master分支做了提交版本，master分支和dev分支都提交了新版本(都做过修改)，合并冲突</p>
<ul>
<li>解决方法，在master分支，打开文件，手动修改融合，并git add 然后Git commit 提交新版本，然后删除不需要的dev分支</li>
</ul>
</li>
<li><h4 id="查看提交的版本详情和分支合并线路"><a href="#查看提交的版本详情和分支合并线路" class="headerlink" title="查看提交的版本详情和分支合并线路"></a>查看提交的版本详情和分支合并线路</h4><ul>
<li><h4 id="git-log-pretty-oneline-graph"><a href="#git-log-pretty-oneline-graph" class="headerlink" title="git log --pretty=oneline --graph"></a><code>git log --pretty=oneline --graph</code></h4></li>
</ul>
</li>
</ul>
<h2 id="分支管理策略"><a href="#分支管理策略" class="headerlink" title="分支管理策略"></a>分支管理策略</h2><ul>
<li>原因：合并未成功并没有冲突，自动提交一次新版本，这种时候删除分支后，会丢失分支信息<ul>
<li>解决方法：不快速合并 并 禁用fast-forward<ul>
<li><code>git merge --no-ff -m &#39;备注&#39; dev</code>     # dev 表示新建分支名(变量，别称)</li>
</ul>
</li>
</ul>
</li>
</ul>
<h1 id="GitHub"><a href="#GitHub" class="headerlink" title="GitHub"></a>GitHub</h1><ul>
<li>概念：工作电脑把代码推送到Git中央服务器，也可以从服务器获取代码，</li>
</ul>
<h2 id="本地连接GitHub"><a href="#本地连接GitHub" class="headerlink" title="本地连接GitHub"></a>本地连接GitHub</h2><ul>
<li>把本地SSH公钥添加到GitHub的settings(设置)里的SSH and GPG keys 里<ul>
<li>title 随便起</li>
<li>SSH公钥添加到下方文本框域</li>
</ul>
</li>
<li>SSH公钥获取<ul>
<li>家目录执行 <code>.gitconfig</code><ul>
<li>获取到email的值 这是本机SSH的私钥<ul>
<li>我的是 <code>5127226+chenkai0309@user.noreply.gitee.com</code></li>
<li><a href="mailto:15300217317@163.com" target="_blank" rel="noopener">15300217317@163.com</a></li>
</ul>
</li>
</ul>
</li>
<li>通过私钥获取生成公钥<ul>
<li><code>ssh-keygen -t rsa -C &#39;5127226+chenkai0309@user.noreply.gitee.com&#39;</code></li>
<li>可以看到 生成路径在 <code>C:\Users\Lenovo/.ssh/id_rsa</code>  的 <code>id_rsa.pub</code>文件里<ul>
<li><code>id_rsa.pub</code> 文件里 存储公钥</li>
<li><code>id_rsa</code> 文件里 存储私钥</li>
</ul>
</li>
<li>查看并拷贝公钥<ul>
<li><code>cat id_rsa.pub</code></li>
</ul>
</li>
</ul>
</li>
<li>ok 完成</li>
</ul>
</li>
</ul>
<h2 id="克隆文件"><a href="#克隆文件" class="headerlink" title="克隆文件"></a>克隆文件</h2><ul>
<li>回到首页</li>
<li>点击仓库    </li>
<li>点击下载或克隆 ，</li>
<li>选择 Use SSH  </li>
<li>获取git地址链接</li>
<li>到指定目录</li>
<li><code>git clone 获取的链接</code></li>
<li>即可下载或克隆</li>
</ul>
<h2 id="推送代码"><a href="#推送代码" class="headerlink" title="推送代码"></a>推送代码</h2><ul>
<li><code>git push origin smart</code>     #smart  新建的分支    origin  远程推送</li>
</ul>

        </div>
    

</div>
            
                
<div class="post">

    <div class="post-header index">
        <h1 class="title">
            <a href="/blog/2018/09/04/Vue无法加载样式/">
                Vue无法加载样式
            </a>
        </h1>
        <div class="post-info">
            
                <span class="date">2018-09-04</span>
            
            
            
        </div>
    </div>

    
        <div class="content">
            <p>vue无法加载样式 style-loader 无法解析错误</p>
<p>解决命令：<br>cnpm install stylus-loader css-loader style-loader –save-dev</p>

        </div>
    

</div>
            
                
<div class="post">

    <div class="post-header index">
        <h1 class="title">
            <a href="/blog/2018/09/01/Dos-命令手记/">
                Dos-命令手记
            </a>
        </h1>
        <div class="post-info">
            
                <span class="date">2018-09-01</span>
            
            
            
        </div>
    </div>

    
        <div class="content">
            <p>DOS命令</p>
<p>DOS实际上是Disk Operation System（磁盘操作系统）的简称</p>
<p>*.txt  删除所有的文本文档</p>
<p>1.显示目录dir</p>
<p>例子：dir 显示C盘目录   dir /b 忽略时间日期</p>
<p>例 dir d: 显示d盘目录</p>
<p>2.指定到某个盘符</p>
<p>例 d: 指定到d盘</p>
<p>3.1 新建目录md</p>
<p>例 md liang(目录名称)</p>
<p>3.2 删除目录  /s 强制删除</p>
<p>例 rd liang(目录名称)  注意：目录里边必须为空</p>
<p>4.1 新建文本文档echo</p>
<p>例 echo &gt;1.txt</p>
<p>4.2 删除文本文档 del</p>
<p>例 del 1.txt</p>
<p>例 del *.txt 删除所有后缀txt的文档</p>
<p>5.显示文本文档内容到dos窗口type</p>
<p>例 type 1.txt</p>
<p>6.改变当前目录cd</p>
<p>例 cd liang 指定到liang目录下</p>
<p>例 cd.. 返回父目录</p>
<p>7.移动文件move </p>
<p>例 move d:\1.txt 目标路径（盘符路径e:\） </p>
<p>例 还有重命名作用 move 1.txt 11.txt 或者 rename 1.txt 11.txt</p>
<p>8.复制文件copy</p>
<p>例 copy 1.txt 目标路径（盘符路径e:\）</p>
<ol start="9">
<li>调试计算机网路 ipconfig</li>
</ol>
<p>10.测试网络通畅 ping</p>
<p>例 ping 192.168.1.183（ip地址）</p>
<p>例 ping <a href="http://www.baidu.com" target="_blank" rel="noopener">www.baidu.com</a></p>
<p>注意：</p>
<p>11.查看目录并写入到文件中</p>
<p>dir &gt;目录名称  覆盖</p>
<p>dir &gt;&gt;目录名称 追加</p>
<p>12.命令向文件写入内容</p>
<p>echo 我很好&gt;1.txt</p>
<p>13.返回</p>
<p>cd.. 上级目录（当只有两级目录时，也可说返回根目录）</p>
<p>cd/  根目录</p>
<p>1.复制目录（文件夹） xcopy d:\123  e:\123</p>
<p>注意：文件夹不能为空</p>

        </div>
    

</div>
            
                
<div class="post">

    <div class="post-header index">
        <h1 class="title">
            <a href="/blog/2018/07/19/CrawlSpider/">
                CrawlSpider--->流程
            </a>
        </h1>
        <div class="post-info">
            
                <span class="date">2018-07-19</span>
            
            
            
        </div>
    </div>

    
        <div class="content">
            <p>通用爬虫</p>
<p>通用网络爬虫 从互联网中搜集网页，采集信息，这些网页信息用于为搜索引擎建立索引从而提供支持，它决定着整个引擎系统的内容是否丰富，信息是否即时，因此其性能的优劣直接影响着搜索引擎的效果。</p>
<p>不扯没用的，上干货！</p>
<p>创建项目：</p>
<p>　　cmd 命令： scrapy startproject 项目名 </p>
<p>创建</p>
<p>　　cmd 命令：scrapy genspider -t crawl 爬虫名 允许爬取得域名</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">在spider文件 主爬虫文件.py中 替换 start_urls 为要爬取的网址！</span><br><span class="line"> </span><br><span class="line">在rules中进行指定规则：</span><br><span class="line">　　ps:规则制定时选中的必须是标签，或正则匹配连接地址（可跳转性）</span><br></pre></td></tr></table></figure>

<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">rules = (</span><br><span class="line">    Rule(LinkExtractor(allow=r&apos;/sort/?st=product&amp;sort=A\[A-Z]&apos;), follow=True),   # 参数： allow 正则选择要满足的需求特点  deny ：一定不取得特点</span><br><span class="line">    Rule(LinkExtractor(restrict_xpaths=&quot;//a[text()=&apos;»&apos;]&quot;), follow=True),　　　　# 参数 restrict_xpaths 用xpath 反向选择或手写xpath取要满足的需求特点</span><br><span class="line">    Rule(LinkExtractor(restrict_xpaths=&quot;/html/body/div[4]/div/div[2]/div[4]/div/div[1]/div/a&quot;), callback=&apos;parse_data&apos;,follow=False),  # 拷贝xpath选择要满足的需求特点</span><br><span class="line">)</span><br></pre></td></tr></table></figure>

<p>　ps：　　　</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br></pre></td><td class="code"><pre><span class="line">　　LinkExtractor（）   链接提取器  对选中连接或标签进行操作</span><br><span class="line">　　follow=True  同位置 继续 提取需求标签</span><br><span class="line">　　follow=False  停止 或 不在 同位置继续提取需求标签</span><br><span class="line">　　clllback=&apos;一个函数名&apos;  follow=True 时 没有太大必要使用，除非该页有需求值 follow=False 时 说明你到了目标数据位置 这是把请求的响应抛给了该函数</span><br><span class="line"></span><br><span class="line">而到了函数，就可以利用xpath取值了，封装进item里就可以了，这里item不需要你实例化了item= &#123;&#125;就可以了 通用爬虫帮你做了</span><br><span class="line"></span><br><span class="line">最后yield item</span><br><span class="line"></span><br><span class="line">主爬虫就写完了。</span><br><span class="line"></span><br><span class="line">然后 --》 ？？？</span><br><span class="line">然后的是就和普通scrapy一样了，</span><br><span class="line">settings.py 里配置 在之前写的博文里有，自行去查看</span><br><span class="line">item.py 里 设置需求数据字段 </span><br><span class="line">pipelines.py 对数据队列 进行操作</span><br><span class="line"></span><br><span class="line">Ps:</span><br><span class="line">了解不深，个人看法：</span><br><span class="line">其实理解这个通用爬虫不难：</span><br><span class="line">就一句话：</span><br><span class="line"> 　　需要注意的点就在rules这块对吧，我的理解就是，这是在宏观意义上给你要提取输得位置进行制定规则，可以理解为定位，所有满足特点的位置就是我需求数据存放的位置！</span><br><span class="line">好了 就到这里！ 简单吧 ！</span><br><span class="line">　　</span><br><span class="line">　　其他的？ 自己悟把！哈哈哈！</span><br></pre></td></tr></table></figure>
        </div>
    

</div>
            
                
<div class="post">

    <div class="post-header index">
        <h1 class="title">
            <a href="/blog/2018/07/12/CentOs-Linux-对于编辑文本内容时无法退出的几个小命令/">
                CentOs-Linux-对于编辑文本内容时无法退出的几个小命令
            </a>
        </h1>
        <div class="post-info">
            
                <span class="date">2018-07-12</span>
            
            
            
        </div>
    </div>

    
        <div class="content">
            <p>编辑完保存退出的四种方式<br>\1. Esc+：+wq+回车（w是write,q是quit）</p>
<p>\2. Esc+：+x+回车（x=wq）</p>
<p>\3. Esc+shift+zz</p>
<p>\4. Esc+ZZ(在大写开启下)</p>

        </div>
    

</div>
            
                
<div class="post">

    <div class="post-header index">
        <h1 class="title">
            <a href="/blog/2018/07/04/Markdown使用指南/">
                Markdown使用指南
            </a>
        </h1>
        <div class="post-info">
            
                <span class="date">2018-07-04</span>
            
            
            
        </div>
    </div>

    
        <div class="content">
            <h1 id="Markdown"><a href="#Markdown" class="headerlink" title="Markdown"></a>Markdown</h1><p>Markdown是一种纯文本格式的标记语言。通过简单的标记语法，它可以使普通文本内容具有一定的格式。</p>
<p>相比WYSIWYG编辑器</p>
<p><strong>优点：</strong><br> 1、因为是纯文本，所以只要支持Markdown的地方都能获得一样的编辑效果，可以让作者摆脱排版的困扰，专心写作。<br> 2、操作简单。比如:WYSIWYG编辑时标记个标题，先选中内容，再点击导航栏的标题按钮，选择几级标题。要三个步骤。而Markdown只需要在标题内容前加#即可</p>
<p><strong>缺点：</strong><br> 1、需要记一些语法（当然，是很简单。五分钟学会）。<br> 2、有些平台不支持Markdown编辑模式。</p>
<p>还好，简书是支持Markdown编辑模式的。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">开启方式：设置-&gt;默认编辑器-&gt;Markdown编辑器</span><br></pre></td></tr></table></figure>

<h1 id="一、标题"><a href="#一、标题" class="headerlink" title="一、标题"></a>一、标题</h1><p>在想要设置为标题的文字前面加#来表示<br> 一个#是一级标题，二个#是二级标题，以此类推。支持六级标题。</p>
<p>注：标准语法一般在#后跟个空格再写文字，貌似简书不加空格也行。</p>
<p>示例：</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"># 这是一级标题</span><br><span class="line">## 这是二级标题</span><br><span class="line">### 这是三级标题</span><br><span class="line">#### 这是四级标题</span><br><span class="line">##### 这是五级标题</span><br><span class="line">###### 这是六级标题</span><br></pre></td></tr></table></figure>

<p>效果如下：</p>
<h1 id="这是一级标题"><a href="#这是一级标题" class="headerlink" title="这是一级标题"></a>这是一级标题</h1><h2 id="这是二级标题"><a href="#这是二级标题" class="headerlink" title="这是二级标题"></a>这是二级标题</h2><h3 id="这是三级标题"><a href="#这是三级标题" class="headerlink" title="这是三级标题"></a>这是三级标题</h3><h4 id="这是四级标题"><a href="#这是四级标题" class="headerlink" title="这是四级标题"></a>这是四级标题</h4><h5 id="这是五级标题"><a href="#这是五级标题" class="headerlink" title="这是五级标题"></a>这是五级标题</h5><h6 id="这是六级标题"><a href="#这是六级标题" class="headerlink" title="这是六级标题"></a>这是六级标题</h6><hr>
<h1 id="二、字体"><a href="#二、字体" class="headerlink" title="二、字体"></a>二、字体</h1><ul>
<li><h5 id="加粗"><a href="#加粗" class="headerlink" title="加粗"></a>加粗</h5></li>
</ul>
<p>要加粗的文字左右分别用两个*号包起来</p>
<ul>
<li><h5 id="斜体"><a href="#斜体" class="headerlink" title="斜体"></a>斜体</h5></li>
</ul>
<p>要倾斜的文字左右分别用一个*号包起来</p>
<ul>
<li><h5 id="斜体加粗"><a href="#斜体加粗" class="headerlink" title="斜体加粗"></a>斜体加粗</h5></li>
</ul>
<p>要倾斜和加粗的文字左右分别用三个*号包起来</p>
<ul>
<li><h5 id="删除线"><a href="#删除线" class="headerlink" title="删除线"></a>删除线</h5></li>
</ul>
<p>要加删除线的文字左右分别用两个~~号包起来</p>
<p>示例：</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">**这是加粗的文字**</span><br><span class="line">*这是倾斜的文字*`</span><br><span class="line">***这是斜体加粗的文字***</span><br><span class="line">~~这是加删除线的文字~~</span><br></pre></td></tr></table></figure>

<p>效果如下：</p>
<p><strong>这是加粗的文字</strong><br> <em>这是倾斜的文字</em><br> <strong>这是斜体加粗的文字</strong><br> <del>这是加删除线的文字</del></p>
<hr>
<h1 id="三、引用"><a href="#三、引用" class="headerlink" title="三、引用"></a>三、引用</h1><p>在引用的文字前加&gt;即可。引用也可以嵌套，如加两个&gt;&gt;三个&gt;&gt;&gt;<br> n个…<br> 貌似可以一直加下去，但没神马卵用</p>
<p>示例：</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">&gt;这是引用的内容</span><br><span class="line">&gt;&gt;这是引用的内容</span><br><span class="line">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;这是引用的内容</span><br></pre></td></tr></table></figure>

<p>效果如下：</p>
<blockquote>
<p>这是引用的内容</p>
<blockquote>
<p>这是引用的内容</p>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<p>这是引用的内容</p>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
<h1 id="四、分割线"><a href="#四、分割线" class="headerlink" title="四、分割线"></a>四、分割线</h1><p>三个或者三个以上的 - 或者 * 都可以。</p>
<p>示例：</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">---</span><br><span class="line">----</span><br><span class="line">***</span><br><span class="line">*****</span><br></pre></td></tr></table></figure>

<p>效果如下：<br> 可以看到，显示效果是一样的。</p>
<hr>
<hr>
<hr>
<hr>
<h1 id="五、图片"><a href="#五、图片" class="headerlink" title="五、图片"></a>五、图片</h1><p>语法：</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">![图片alt](图片地址 &apos;&apos;图片title&apos;&apos;)</span><br><span class="line"></span><br><span class="line">图片alt就是显示在图片下面的文字，相当于对图片内容的解释。</span><br><span class="line">图片title是图片的标题，当鼠标移到图片上时显示的内容。title可加可不加</span><br></pre></td></tr></table></figure>

<p>示例：</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">![blockchain](https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/</span><br><span class="line">u=702257389,1274025419&amp;fm=27&amp;gp=0.jpg &quot;区块链&quot;)</span><br></pre></td></tr></table></figure>

<p>效果如下：</p>
<p><img src="https://upload-images.jianshu.io/upload_images/6860761-fd2f51090a890873.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/550/format/webp" alt="img"></p>
<p><strong>上传本地图片直接点击导航栏的图片标志，选择图片即可</strong></p>
<h1 id="六、超链接"><a href="#六、超链接" class="headerlink" title="六、超链接"></a>六、超链接</h1><p>语法：</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">[超链接名](超链接地址 &quot;超链接title&quot;)</span><br><span class="line">title可加可不加</span><br></pre></td></tr></table></figure>

<p>示例：</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">[简书](http://jianshu.com)</span><br><span class="line">[百度](http://baidu.com)</span><br></pre></td></tr></table></figure>

<p>效果如下：</p>
<p><a href="https://www.jianshu.com/u/1f5ac0cf6a8b" target="_blank" rel="noopener">简书</a><br> <a href="http://baidu.com" target="_blank" rel="noopener">百度</a></p>
<p>注：Markdown本身语法不支持链接在新页面中打开，貌似简书做了处理，是可以的。别的平台可能就不行了，如果想要在新页面中打开的话可以用html语言的a标签代替。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">&lt;a href=&quot;超链接地址&quot; target=&quot;_blank&quot;&gt;超链接名&lt;/a&gt;</span><br><span class="line"></span><br><span class="line">示例</span><br><span class="line">&lt;a href=&quot;https://www.jianshu.com/u/1f5ac0cf6a8b&quot; target=&quot;_blank&quot;&gt;简书&lt;/a&gt;</span><br></pre></td></tr></table></figure>

<hr>
<h1 id="七、列表"><a href="#七、列表" class="headerlink" title="七、列表"></a>七、列表</h1><ul>
<li><h5 id="无序列表"><a href="#无序列表" class="headerlink" title="无序列表"></a>无序列表</h5></li>
</ul>
<p>语法：<br> 无序列表用 - + * 任何一种都可以</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">- 列表内容</span><br><span class="line">+ 列表内容</span><br><span class="line">* 列表内容</span><br><span class="line"></span><br><span class="line">注意：- + * 跟内容之间都要有一个空格</span><br></pre></td></tr></table></figure>

<p>效果如下：</p>
<ul>
<li><p>列表内容</p>
</li>
<li><p>列表内容</p>
</li>
<li><p>列表内容</p>
</li>
<li><h5 id="有序列表"><a href="#有序列表" class="headerlink" title="有序列表"></a>有序列表</h5></li>
</ul>
<p>语法：<br> 数字加点</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">1.列表内容</span><br><span class="line">2.列表内容</span><br><span class="line">3.列表内容</span><br><span class="line"></span><br><span class="line">注意：序号跟内容之间要有空格</span><br></pre></td></tr></table></figure>

<p>效果如下：</p>
<p>1.列表内容<br> 2.列表内容<br> 3.列表内容</p>
<ul>
<li><h5 id="列表嵌套"><a href="#列表嵌套" class="headerlink" title="列表嵌套"></a>列表嵌套</h5></li>
</ul>
<p><strong>上一级和下一级之间敲三个空格即可</strong></p>
<ul>
<li>一级无序列表内容<ul>
<li>二级无序列表内容</li>
<li>二级无序列表内容</li>
<li>二级无序列表内容</li>
</ul>
</li>
<li>一级无序列表内容<ol>
<li>二级有序列表内容</li>
<li>二级有序列表内容</li>
<li>二级有序列表内容</li>
</ol>
</li>
</ul>
<ol>
<li>一级有序列表内容<ul>
<li>二级无序列表内容</li>
<li>二级无序列表内容</li>
<li>二级无序列表内容</li>
</ul>
</li>
<li>一级有序列表内容<ol>
<li>二级有序列表内容</li>
<li>二级有序列表内容</li>
<li>二级有序列表内容</li>
</ol>
</li>
</ol>
<hr>
<h1 id="八、表格"><a href="#八、表格" class="headerlink" title="八、表格"></a>八、表格</h1><p>语法：</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">表头|表头|表头</span><br><span class="line">---|:--:|---:</span><br><span class="line">内容|内容|内容</span><br><span class="line">内容|内容|内容</span><br><span class="line"></span><br><span class="line">第二行分割表头和内容。</span><br><span class="line">- 有一个就行，为了对齐，多加了几个</span><br><span class="line">文字默认居左</span><br><span class="line">-两边加：表示文字居中</span><br><span class="line">-右边加：表示文字居右</span><br><span class="line">注：原生的语法两边都要用 | 包起来。此处省略</span><br></pre></td></tr></table></figure>

<p>示例：</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">姓名|技能|排行</span><br><span class="line">--|:--:|--:</span><br><span class="line">刘备|哭|大哥</span><br><span class="line">关羽|打|二哥</span><br><span class="line">张飞|骂|三弟</span><br></pre></td></tr></table></figure>

<p>效果如下：</p>
<table>
<thead>
<tr>
<th>姓名</th>
<th>技能</th>
<th>排行</th>
</tr>
</thead>
<tbody><tr>
<td>刘备</td>
<td>哭</td>
<td>大哥</td>
</tr>
<tr>
<td>关羽</td>
<td>打</td>
<td>二哥</td>
</tr>
<tr>
<td>张飞</td>
<td>骂</td>
<td>三弟</td>
</tr>
</tbody></table>
<h1 id="九、代码"><a href="#九、代码" class="headerlink" title="九、代码"></a>九、代码</h1><p>语法：<br> 单行代码：代码之间分别用一个反引号包起来</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">`代码内容`</span><br></pre></td></tr></table></figure>

<p>代码块：代码之间分别用三个反引号包起来，且两边的反引号单独占一行</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">(```)</span><br><span class="line">  代码...</span><br><span class="line">  代码...</span><br><span class="line">  代码...</span><br><span class="line">(```)</span><br></pre></td></tr></table></figure>

<blockquote>
<p>注：为了防止转译，前后三个反引号处加了小括号，实际是没有的。这里只是用来演示，实际中去掉两边小括号即可。</p>
</blockquote>
<p>示例：</p>
<p>单行代码</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">`create database hero;`</span><br></pre></td></tr></table></figure>

<p>代码块</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">(```)</span><br><span class="line">    function fun()&#123;</span><br><span class="line">         echo &quot;这是一句非常牛逼的代码&quot;;</span><br><span class="line">    &#125;</span><br><span class="line">    fun();</span><br><span class="line">(```)</span><br></pre></td></tr></table></figure>

<p>效果如下：</p>
<p>单行代码</p>
<p><code>create database hero;</code></p>
<p>代码块</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">function fun()&#123;</span><br><span class="line">  echo &quot;这是一句非常牛逼的代码&quot;;</span><br><span class="line">&#125;</span><br><span class="line">fun();</span><br></pre></td></tr></table></figure>

<h1 id="十、流程图"><a href="#十、流程图" class="headerlink" title="十、流程图"></a>十、流程图</h1><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">​```flow</span><br><span class="line">st=&gt;start: 开始</span><br><span class="line">op=&gt;operation: My Operation</span><br><span class="line">cond=&gt;condition: Yes or No?</span><br><span class="line">e=&gt;end</span><br><span class="line">st-&gt;op-&gt;cond</span><br><span class="line">cond(yes)-&gt;e</span><br><span class="line">cond(no)-&gt;op</span><br><span class="line">&amp;</span><br></pre></td></tr></table></figure>

<pre><code>
效果如下：
 简书不支持流程图，所以截了个图

 ![img](https://upload-images.jianshu.io/upload_images/6860761-9d9524ba31047696.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/751/format/webp)








</code></pre>
        </div>
    

</div>
            
        </section>
    </div>
</div>



    <div class="row">
        <div class="col-sm-12">
            <div class="wrap-pagination">
                <a class="" href="/blog/page/5/">
                    <i class="fa fa-chevron-left" aria-hidden="true"></i>
                </a>
                <a class="" href="/blog/page/7/">
                    <i class="fa fa-chevron-right" aria-hidden="true"></i>
                </a>
            </div>
        </div>
    </div>




</div>

<!-- Footer -->
<div class="push"></div>

<footer class="footer-content">
    <div class="container">
        <div class="row">
            <div class="col-xs-12 col-sm-12 col-md-6 col-lg-6 footer-about">
                <h2>About</h2>
                <p>
                    This theme was developed by <a href="https://github.com/klugjo">Jonathan Klughertz</a>. The source code is available on Github. Create Websites. Make Magic.
                </p>
            </div>
            
    <div class="col-xs-6 col-sm-6 col-md-3 col-lg-3 recent-posts">
        <h2>Recent Posts</h2>
        <ul>
            
            <li>
                <a class="footer-post" href="/blog/2019/10/25/tars框架环境基础搭建/">tars框架环境基础搭建</a>
            </li>
            
            <li>
                <a class="footer-post" href="/blog/2019/10/20/认识tars框架/">认识tars框架</a>
            </li>
            
            <li>
                <a class="footer-post" href="/blog/2019/10/05/redis数据迁移备份与恢复/">redis数据迁移备份与恢复</a>
            </li>
            
            <li>
                <a class="footer-post" href="/blog/2019/09/21/负载均衡的5种策略/">负载均衡的5种策略</a>
            </li>
            
        </ul>
    </div>



            
        </div>
        <div class="row">
            <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
                <ul class="list-inline footer-social-icons">
                    
                    <li class="list-inline-item">
                        <a href="https://github.com/klugjo/hexo-theme-alpha-dust">
                            <span class="footer-icon-container">
                                <i class="fa fa-github"></i>
                            </span>
                        </a>
                    </li>
                    
                    
                    <li class="list-inline-item">
                        <a href="https://twitter.com/?lang=en">
                            <span class="footer-icon-container">
                                <i class="fa fa-twitter"></i>
                            </span>
                        </a>
                    </li>
                    
                    
                    <li class="list-inline-item">
                        <a href="https://www.facebook.com/">
                            <span class="footer-icon-container">
                                <i class="fa fa-facebook"></i>
                            </span>
                        </a>
                    </li>
                    
                    
                    <li class="list-inline-item">
                        <a href="https://www.instagram.com/">
                            <span class="footer-icon-container">
                                <i class="fa fa-instagram"></i>
                            </span>
                        </a>
                    </li>
                    
                    
                    <li class="list-inline-item">
                        <a href="https://dribbble.com/">
                            <span class="footer-icon-container">
                                <i class="fa fa-dribbble"></i>
                            </span>
                        </a>
                    </li>
                    
                    
                    <li class="list-inline-item">
                        <a href="https://plus.google.com/">
                            <span class="footer-icon-container">
                                <i class="fa fa-google-plus"></i>
                            </span>
                        </a>
                    </li>
                    
                    
                    <li class="list-inline-item">
                        <a href="https://www.behance.net/">
                            <span class="footer-icon-container">
                                <i class="fa fa-behance"></i>
                            </span>
                        </a>
                    </li>
                    
                    
                    <li class="list-inline-item">
                        <a href="https://500px.com/">
                            <span class="footer-icon-container">
                                <i class="fa fa-500px"></i>
                            </span>
                        </a>
                    </li>
                    
                    
                    <li class="list-inline-item">
                        <a href="mailto:test@example.com">
                            <span class="footer-icon-container">
                                <i class="fa fa-envelope-o"></i>
                            </span>
                        </a>
                    </li>
                    
                    
                    <li class="list-inline-item">
                        <a href="\#">
                            <span class="footer-icon-container">
                                <i class="fa fa-rss"></i>
                            </span>
                        </a>
                    </li>
                    
                </ul>
            </div>
        </div>
        <div class="row">
            <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
                <div class="footer-copyright">
                    @Untitled. All right reserved | Design & Hexo <a href="http://www.codeblocq.com/">Jonathan Klughertz</a>
                </div>
            </div>
        </div>
    </div>
</footer>

<!-- After footer scripts -->

<!-- jQuery -->
<script src="//code.jquery.com/jquery-2.1.4.min.js"></script>

<!-- Tween Max -->
<script src="//cdnjs.cloudflare.com/ajax/libs/gsap/1.18.5/TweenMax.min.js"></script>

<!-- Gallery -->
<script src="//cdnjs.cloudflare.com/ajax/libs/featherlight/1.3.5/featherlight.min.js" type="text/javascript" charset="utf-8"></script>

<!-- Custom JavaScript -->
<script src="/blog/js/main.js"></script>

<!-- Disqus Comments -->



</body>

</html>